www.gusucode.com > ROCKOA PHP协同办公OA办公系统 v2.0PHP源码程序 > ROCKOA PHP协同办公OA办公系统 v2.0/rockoa_v2.0/rockoa_v2.0/webrock/extjs/rock/flow.js

    /**
	主页:http://www.xh829.com
	交流QQ群:429403774
	说明:免费开源软件,欢迎学习研究使用
	作者:雨中磐石(rainrock)
*/

Ext.define('Ext.rock.flow', {
	win:false,
	config:{
		rand:'',
		tablename:'',
		flownum:'',
		checkcall:function(){},
		opentype:0
	},
	constructor: function (config){
		this.initConfig(config);
		if(!this.rand)this.rand = js.getrand();
		
	},
	_url:function(at,can){
		return js.getajaxurl(at,'flow','',can);
	},
	ztarr:[],
	showbtn:function(val,ma, c, fnum){
		var s = '',s1='',
			a = c.raw;
		if(isempt(fnum))fnum=this.flownum;
		var zt = a.status;
		if(a.isturn!='1')return '待提交';
		if(zt=='5')return '<font color=#888888>已作废</font>';
		//2退回
		var zta = this.ztarr[a.nstatus];
		if(zta){
			s = a.statusman+'<font color='+zta[1]+'>'+zta[0]+'</font><br>';
		}
		if(!isempt(a.nowcheckname))s+='<font color=blue>待'+a.nowcheckname+'处理</font>';
		if(this.opentype==1){
			var btn = a.notbtnarr,dz;
			for(dz in btn){
				s1 += '<input value="'+btn[dz][0]+'" recezt="'+btn[dz][1]+'" nidzt="'+btn[dz][3]+'" temp="flowbtn_'+this.rand+'_'+fnum+''+a.id+'" receid="'+a.id+'" flownum="'+fnum+'" type="button">';
			}
			s+='<br>'+s1;
		}
		return s;
	},
	
	iseditdel:function(v, eid, did){
		if(this.opentype!=0)return;
		var bo = true;
		if(v){
			var a = v.raw;
			if(a.isturn!='1' && (a.status=='0' || a.status=='2'))bo=false;
			if(a.nstatus=='0' || a.nstatus=='2')bo=false;
		}
		if(eid){
		eid+='_'+this.rand;
		if(getcmp(eid)){
			getcmp(eid).setDisabled(bo);
		}}
		if(did){
		did+='_'+this.rand;
		if(getcmp(did)){
			getcmp(did).setDisabled(bo);
		}}
	},
	loadshow:function(obj){
		var me = this;
		me.gridobj = obj;
		$("input[temp^='flowbtn_"+this.rand+"_']").click(function(){
			me._check(this, obj);
		});
		me.ztarr = obj.getData('ztarr');
	},
	_check:function(o1, obj){
		if(this.bool)return false;
		var me	= this;
		var o	= $(o1);
		var id	= o.attr('receid'), zt	= o.attr('recezt'), num = o.attr('flownum'), name= o.attr('quename'), nid = o.attr('nidzt'), actv= o.val();
		if(isempt(name))name='';
		var sm	= '';
		var can = {id:id,zt:zt,sm:sm,flownum:num, name:name,actname:actv};
		if(nid == '-1'){
			Ext.MessageBox.prompt(actv, '请输入处理['+actv+']的原因:',function(a,b){
				if(a=='ok' && b){
					can.sm	= b;
					o1.disabled = true;
					me._checksubmit(can, o1);
				}
			},'',true,'');
		}else{
			o1.disabled = true;
			this._checksubmit(can, o1);
		}
	},
	_checksubmit:function(can, o1){
		o1.value='处理中...';
		this.bool	= true;
		var me	= this;
		$("input[temp='flowbtn_"+this.rand+"_"+can.flownum+""+can.id+"']").attr('disabled',true);
		$.post(this._url('check'),can,function(da){
			o1.value= da;
			me.bool	= false;
			if(da.indexOf('成功')>0){
				if(me.gridobj)me.gridobj.storereload();
				me.checkcall();
				try{reloaddaiban()}catch(e){}
			}	
		});
	},
	showinfor:function(id,tab){
		if(typeof(flowwindow)!='object'){
			var cans = winopt({title: '查看',icon:gicons('page_white_text'),width:670,height:300,border:false,layout:'border',items:[{
					region:'west',width:140,xtype:'panel',split:true,autoScroll:true,html:'<div id="flowinfor_rockcourse" style="padding:5px;text-align:center;line-height:26px"></div>'
				},{
					region:'center',xtype:'grid',id:'flowinfor_rockgrid',
					store:Ext.create('Ext.data.Store',{
						fields:['id','name','checkname','status','explain','optdt'],
						data:[]
					}),
					columns:[{
						xtype: 'rownumberer',width:40	
					},{
						text:'名称',dataIndex:'name',align:'center',width:130,sortable:false
					},{
						text:'处理人',dataIndex:'checkname',align:'center',width:80,sortable:false
					},{
						text:'状态',dataIndex:'status',align:'center',width:80,sortable:false,renderer:function(v){
							var s=v;
							if(v=='1')s='<font color=green>通过</font>';
							if(v=='2')s='<font color=red>不通过</font>';
							return s;
						}
					},{
						text:'时间',dataIndex:'optdt',align:'center',width:160,sortable:false
					}],
					viewConfig: {
						enableTextSelection: true
					},
					features: [{
						ftype: 'rowbody',
						getAdditionalData: function(v, index) {
							var cont = v.explain,
								s	= '';
							var cls = 'x-grid-row-body-hidden';
							if(!isempt(cont)){
								cls = '';
								s	= '<div style="padding:2px;padding-left:5px;line-height:20px">【说明】:'+cont+'</div>';
							}
							return {
								rowBody: s,
								rowBodyCls:cls
							};
						}
					}, {
						ftype: 'rowwrap'
					}]
				}]	
			});
			flowwindow = Ext.create('Ext.Window',cans);
		}
		flowwindow.show();
		this._loadinfor({mid:id,table:tab});
	},
	_loadinfor:function(cans){
		flowwindow.el.mask('加载中...');
		var me = this;
		$.post(this._url('getinfor'),cans, function(da){
			var a = Ext.decode(da);
			me._loadinforshow(a);
		});
	},
	_loadinforshow:function(a){
		getcmp('flowinfor_rockgrid').getStore().loadData(a.rows);
		flowwindow.el.unmask();
		var log = a.log,s='',i,col,sty,s1='';
		for(i=0; i<log.length; i++){
			col = '#888888';
			sty = '#';
			if(log[i].zt==2){
				sty = 'color:#888888;';
				col	= '#cccccc';
			}	
			if(log[i].zt==1){
				sty = 'font-weight:bold;color:#800000';
				col	= '#800000';
			}	
			s1='<span style="margin:2px;"><br>↓<br></span>';
			if(i==0)s1='';
			s+='<span style="'+sty+'">'+s1+'<span style="padding:3px 5px;border:1px '+col+' solid">'+(i+1)+'. '+log[i].name+'</span></span>';
		}
		$('#flowinfor_rockcourse').html(s);
	}
});